package com.gqj.meter.mapper;

import com.gqj.meter.domain.MdInTask;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 出入库任务Mapper接口
 *
 * @author lxq
 * @date lxq-02-10
 */
public interface MdInTaskMapper {
    /**
     * 查询出入库任务
     *
     * @param inTaskId 出入库任务主键
     * @return 出入库任务
     */
    public MdInTask selectMdInTaskByInTaskId(Long inTaskId);

    /**
     * 查询出入库任务
     *
     * @param inTaskNo 出入库任务编号
     * @return 出入库任务
     */
    public MdInTask selectMdInTaskByInTaskNo(String inTaskNo);

    /**
     * 查询出入库任务列表
     *
     * @param mdInTask 出入库任务
     * @return 出入库任务集合
     */
    public List<MdInTask> selectMdInTaskList(MdInTask mdInTask);

    /**
     * 新增出入库任务
     *
     * @param mdInTask 出入库任务
     * @return 结果
     */
    public int insertMdInTask(MdInTask mdInTask);

    /**
     * 修改出入库任务
     *
     * @param mdInTask 出入库任务
     * @return 结果
     */
    public int updateMdInTask(MdInTask mdInTask);

    /**
     * 删除出入库任务
     *
     * @param inTaskId 出入库任务主键
     * @return 结果
     */
    public int deleteMdInTaskByInTaskId(Long inTaskId);

    /**
     * 批量删除出入库任务
     *
     * @param inTaskIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMdInTaskByInTaskIds(Long[] inTaskIds);

    /**
     * 校验任务编号否唯一
     *
     * @param inTaskNo 物资编码
     * @return 结果
     */
    public MdInTask checkInTaskNoUnique(@Param("inTaskNo") String inTaskNo);

    //获取年度入库数量
    public Map<String, Integer> getYearInNum();

    //获取年度出库数量
    public  Map<String, Integer> getYearOutNum();

}
